home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / Development Tools & Languages / Dylan Related / newsletter #1, 29Jul94 / newsletter.txt < prev    next >
Encoding:
Text File  |  1994-08-17  |  27.6 KB  |  609 lines  |  [TEXT/ttxt]

  1. Dylan Developments
  2. The Dylan(tm) Newsletter
  3. Issue 1         July 29, 1994
  4.  
  5. We're happy to start this newsletter in order to keep you up to date on
  6. what's happening with Dylan(tm), the new object-oriented dynamic language.
  7. We hope to publish about once a month. ASCII copies will be mailed out to
  8. the announce-dylan mailing list. Fully formatted versions and back issues
  9. will be available at all the usual Dylan file repositories.
  10.  
  11. For more information about exactly where the usual Dylan file repositories
  12. are, as well as pointers to several Dylan-related mailing lists, please see
  13. the enclosed document, known as the Dylan FAQ (Answers to Frequently Asked
  14. Questions)
  15.  
  16.   Steve Strassmann, editor
  17.   straz@apple.com
  18.  
  19. Table of contents:
  20.    What we've been up to lately
  21.    Status of Apple Dylan and other Dylans
  22.    3 language Q&A's from the info-dylan list
  23.    The Dylan FAQ
  24.  
  25. What we've been up to lately
  26.  
  27. The first major public event in Dylan's history was the publication of the
  28. little grey book in the spring of '92. We kept a relatively low profile
  29. until this spring at the Apple WWDC (World-Wide Developer's Conference), an
  30. annual gathering of high-powered Mac developers.
  31.  
  32. At the WWDC, we gave two 90-minute presentations to standing-room-only
  33. crowds. The first, given by Dylan Product Manager, Rick Fleischman, Apple
  34. Cambridge director Carl Schwarcz and Andrew Shalit, was an overview of the
  35. whole Dylan effort, and the Apple Dylan product in particular. Andrew ran
  36. the development environment through its paces, showing off the innovative
  37. browsing and interactive development ideas that make it so special. We also
  38. annouced the schedule and features for Apple's implementation of Dylan.
  39.  
  40. The second session, given by Stoney Ballard and Mike Lockwood of the Dylan
  41. engineering team, provided more depth on the Dylan language, as well as the
  42. application framework included with Apple Dylan.  Stoney and Mike
  43. alternated giving information about the Dylan language and framework and
  44. demonstrating them live in the Apple Dylan environment.  The highlight of
  45. the session was when Mike showed a version of the Macintosh Finder written
  46. in Dylan, and then proceeded to add new features to the running Finder
  47. during the session.
  48.  
  49. Videotapes of our sessions at WWDC are available for $30 each from GT
  50. Recording in Seattle, Washington at (800) 878-2737 or (206) 783-6911.
  51. Order tapes #57 (Dylan Overview) and #67 (Dylan In-Depth).
  52.  
  53. Jeremy Jones and Rick Fleischman went up to Ann Arbor, MI for the MacHack
  54. conference, an insane hackathon whose program starts at midnight and
  55. continues for 3 days, nonstop (plenty of Jolt available). They did a
  56. one-hour presentation and demonstrated Dylan informally in the MacHack
  57. machine room.
  58.  
  59. Last week, John Hotchkiss and Jeremy Jones gave a Dylan talk at a meeting
  60. of the BCS (Boston Computer Society) MacTech Group.
  61.  
  62. Coming up next week (Aug 2-5), it's Macworld Boston!  Look for the big tent
  63. across the street from the World Trade Center, with the Apple Pavilion in
  64. it. We'll have a full-time Dylan demo station in the Developer Tools area
  65. throughout the show, and daily presentations in the Developer Tools
  66. presentation theater.
  67.  
  68. The Dylan language has been improved and simplified since 1992. We now
  69. consider it to be pretty stable, except for the specification of macros,
  70. and the inevitable small changes. In June, we published the Interim
  71. Reference Manual, which describes almost all of the language as it is
  72. currently defined, especially the infix (algebraic) syntax. Electronic
  73. copies are now freely available on the Internet, Applelink, and Compuserve,
  74. and hopefully more places soon. See the FAQ (enclosed) for details.
  75.  
  76. We call it the "interim" book because the book isn't quite finished, even
  77. though most of the language is. We're now working on a more readable and
  78. more complete Dylan reference book, which should be available sometime in
  79. early 1995.
  80.  
  81. Apple Dylan status
  82.  
  83. Development is well underway on Apple Dylan.  Our first product, which
  84. we're calling "Early Dylan" is scheduled to ship in Q1 (January-March) of
  85. 1995.  It is a full implementation of Dylan including:
  86. * Dylan compiler and runtime
  87. * Integrated development environment featuring incremental development and
  88. advanced configurable browsing and viewing of code
  89. * Dylan application framework
  90. * Dylan user-interface builder
  91. * Cross-language support allowing seamless access to existing C code and APIs
  92.  
  93. We've already begun limited pre-alpha external seeding of Apple Dylan to
  94. selected sites. We are planning on expanding the list of external seed
  95. sites when we reach alpha, currently scheduled for late in Q3
  96. (July-September), 1994.  If you are interested in applying to be an early
  97. seed site for Apple Dylan, send an e-mail to DYLAN on AppleLink or
  98. dylan@applelink.apple.com on the Internet with your name, address,
  99. telephone number, and a brief description of how you intend to use the seed
  100. software.
  101.  
  102. We will be continuing to expand seeding through beta and final of Early Dylan.
  103.  
  104. Status of other Dylan versions
  105.  
  106. Several groups outside Apple have expressed interest in implementing Dylan,
  107. and many of these versions are currently available.
  108.  
  109. Marlais, created by Brent Benson, is a freeware Dylan interpreter written
  110. in relatively portable C. As of this writing,  version 0.4 (by Joe Wilson)
  111. is available, as is a Macintosh port of version 0.3 (by Patrick Beard).
  112. These versions still support the lisp-like syntax, but version 0.5 will
  113. support the official algebraic syntax. All Marlais releases are available
  114. in the Dylan ftp directory at cambridge.apple.com.
  115.  
  116. Thomas, created by Jim Miller, Matt Birkholz, and Ron Weiss of DEC
  117. Cambridge Research Labs, is a freeware Dylan interpreter written in Scheme.
  118. Version 1.1 supports the lisp-like syntax, but no further updates are
  119. expected any time soon. It's available from the Dylan ftp directory.
  120.  
  121. Harlequin is currently investing in a commercial implementation of Dylan.
  122. They are building a PC based Windows (NT/Chicago) hosted version of the
  123. language. For further information, write to Mike Smith,
  124. mikes@harlequin.com.
  125.  
  126. The Gwydion Project at Carnegie Mellon University is building an innovative
  127. new software development and maintenance environment around the Dylan
  128. language.  A part of this work will involve the development of a
  129. high-performance Dylan implementation that will produce code for many
  130. platforms.
  131.  
  132. For more information on this project, see the Gwydion project's WorldWide Web
  133. page: http://legend.gwydion.cs.cmu.edu:8001/gwydion/.
  134.  
  135. As a development tool, the Gwydion project has produced a byte-coded Dylan
  136. implementation called "Mindy".  Though it is not very fast, does not have
  137. an extensive environment, and time spent on maintaining it will be limited,
  138. Mindy may be of some value to people who want to play with Dylan code and
  139. get a feel for the language.  Version 1.0 has been released for general
  140. use, and the latest information on Mindy is available in the Gwydion web
  141. page.
  142.  
  143. Some Q&A's from the info-dylan list
  144.  
  145. Q.      How do I define a variable with a type without initializing it?
  146. For example,
  147.                 let n :: <integer> = 0;         // this is fine but
  148.                 let n :: <integer>;             // this produces an error.
  149.  
  150. A.      Sorry, both let and define variable require an initialization
  151. value. That's part of the Dylan approach to safety; it would be unsafe to
  152. let a variable go running loose without a well-defined value. There's no
  153. concept in Dylan of a variable that "exists, but hasn't been initalized
  154. yet." There's also no concept of "default value for a type".
  155.  
  156. Q.      Is it possible to override operators like + and = as in C++?
  157.  
  158. A.      Yes, you can write your own methods to specialize '+' and certain
  159. other built-in functions, as long as they are generic functions.  Note that
  160. to define methods on operators, you need to quote the operator with a \.
  161. So, for example, in order to add two colors together (whatever that means
  162. within your application), you'd write something like this:
  163.  
  164.        define method \+ (color1::<rgbcolor>, color2::<rgbcolor>)
  165.                         ...
  166.        end method;
  167.  
  168. Q.      I'm looking at a program containing a call to local-bounds(view).
  169. This  looks like a method but it acts like a slot accessor. Which is it?
  170.  
  171. A.      The Dylan language philosophy is that it is none of the caller's
  172. business whether a function is implemented as a slot or as a method. This
  173. is different from C or C++ or Pascal, where you have to know which it is.
  174.  
  175.         So local-bounds(view) and view.local-bounds mean exactly the same
  176.         thing; the only reason both constructs exist in Dylan is so programmers
  177.         can develop a style that conveys some extra hint about what they are
  178.         thinking through their choice of parentheses or dot for calling a
  179.         function with one argument.
  180.  
  181.         Similarly, local-bounds(view) := x and view.local-bounds := x mean
  182.         exactly the same thing, a call to local-bounds-setter.
  183.  
  184.  
  185. Dylan(tm) FAQ
  186. Apple Computer - July 29, 1994
  187.  
  188. This memo answers questions which are frequently asked about the Dylan
  189. programming language, and its implementations. If you want to keep up with
  190. Dylan news, consider joining the announce-dylan or info-dylan mailing
  191. lists, or the comp.lang.dylan newsgroup, described below.
  192.  
  193. The latest version of this memo is available by anonymous ftp from
  194. cambridge.apple.com: /pub/dylan/faq/ in a variety of formats, including
  195. plain ASCII, RTF (Rich Text Format), and PostScript(tm).
  196.  
  197. The topics covered in this FAQ are
  198.         [1] Online Sources of Dylan Information
  199.         [1-1] Where is Dylan information generally available?
  200.         [1-2] Where can I get a copy of the language specification?
  201.         [1-3] Are there any public mailing lists for discussing Dylan?
  202.         [1-4] Where else can I get information about Dylan?
  203.         [1-5] Where should I send comments on the Dylan language?
  204.         [1-6] What should I do if I want to implement Dylan?
  205.         [1-7] Is there a group which promotes the use of object-oriented
  206.         dynamic languages?
  207.  
  208.         [2] General Questions About Dylan and Implementations
  209.         [2-1] What is Dylan?
  210.         [2-2] What is the target audience for Dylan?
  211.         [2-3] How does Dylan differ from previous OODLs?
  212.         [2-4] Does Apple have an implementation of Dylan?
  213.         [2-5] How can I get an early copy of Apple's Dylan implementation?
  214.         [2-6] What third-party implementations of Dylan are available?
  215.         [2-7] Is Dylan related to the Newton PDA?
  216.         [2-8] Is Dylan designed to be a replacement for Common Lisp?
  217.         [2-9] Is Dylan a proprietary language?  Why is the Dylan name
  218.         trademarked?
  219.  
  220.         [3] Questions about the Dylan Language Design
  221.         [3-1] Is the Dylan language design frozen?
  222.         [3-2] What does the Dylan syntax look like?
  223.         [3-3] Will Dylan have a standard macro system with the algebraic syntax?
  224.         [3-4] Are there plans to specify a standard I/O package for Dylan?
  225.         What about threads?
  226.         [3-5] Why is 'make' allowed to return a previously allocated instance,
  227.         or an object which is
  228.                 an indirect instance of the class passed to make?
  229.         [3-6] The Dylan '92 manual doesn't require implementations to optimize
  230.         tail-recursion.  Was
  231.                 this an intentional omission, or an editorial oversight?
  232.         [3-7] The Dylan '92 manual doesn't say much about modules.  Will this
  233.         be specified in the
  234.                 future?
  235.         [3-8] Can the 'method' special form be used to create closures?
  236.         [3-9] I don't understand how setter variables work.  Is 'setter' a
  237.         special form?
  238.         [3-10] What kind of object is used to return multiple values?
  239.         [3-11] Is the specification of sealing complete?
  240.         [3-12] Will Dylan include 'eval'?
  241.         [3-13] Will Dylan include an application framework?
  242.         [3-14] Will Dylan interface to other languages?
  243.  
  244.  
  245. [1] Online Sources of Dylan Information
  246.  
  247. [1-1] Where is Dylan information generally available?
  248.  
  249. On the Internet, the Apple Dylan ftp site is cambridge.apple.com:/pub/dylan/.
  250.  
  251. The Dylan WWW (World-Wide Web) page at Carnegie Mellon University is
  252. http://legend.gwydion.cs.cmu.edu:8001/dylan/
  253.  
  254. The Dylan newsgroup is comp.lang.dylan.
  255.  
  256. On Applelink, Dylan files are regularly uploaded to this area:
  257. Developer Support:Developer Services:
  258.    Development Platforms:Dylan Related
  259.  
  260. On CompuServe, Type GO APPLE to get to the Apple support forum.
  261. There are 16 libraries, go into Programmers/Developers Library #15
  262.  
  263. [1-2] Where can I get a copy of the language specification?
  264.  
  265. The first book on the Dylan language was published in 1992.  Since then,
  266. the language has undergone a great deal of change in response to feedback
  267. from potential users and implementors.  Throughout this process, changes to
  268. the language design have been published electronically in the form of
  269. design notes.  The current round of language design is now essentially
  270. complete except for the macro system.
  271.  
  272. A new Dylan language reference will be published in early 1995.  This will
  273. be the definitive specification of the Dylan language.  Apple is working
  274. closely with other Dylan implementors to ensure that this book is not
  275. Apple-specific, but rather, applies equally to all Dylan implementations.
  276.  
  277. Of course, we realize that many people want to read about Dylan now!  So to
  278. fill the gap until the new book is published, an interim Dylan reference
  279. book is available by anonymous ftp, in the directory
  280. /pub/dylan/dylan-manual/, as well as in the other file areas listed in
  281. topic [1-1] above. It is available in both RTF (Rich Text Format) and
  282. PostScript formats (214 pages). The interim book is a combination of the
  283. original Dylan book, the previously published design notes, and additional
  284. previously unpublished design decisions. The document is called "interim"
  285. not because the language design is unfinished, but because this is a very
  286. rough document intended for use until the new book is ready.
  287.  
  288. [1-3] Are there any public mailing lists for discussing Dylan?
  289.  
  290. Yes. The info-dylan mailing list is a forum for discussing all subjects
  291. related to Dylan.  Each day's messages are gathered into a digest and sent
  292. as a single compound message to the list info-dylan-digest.  The mailing
  293. list is also linked to the Newsgroup comp.lang.dylan.
  294.  
  295. The announce-dylan mailing list is a moderated list, for major
  296. announcements about Dylan (such as the availability of new implementations
  297. of the language).  All messages sent to announce-dylan are also sent to
  298. info-dylan.
  299.  
  300. To subscribe to info-dylan or announce-dylan, send mail to
  301. majordomo@cambridge.apple.com.  The body of the message should be
  302. "subscribe <list-name>", where <list-name> is the name of the mailing list
  303. you want to subscribe to.  To unsubscribe to one of the mailing lists, send
  304. majordomo a message with the body "unsubscribe <list-name>".  If you would
  305. like to subscribe or unsubscribe an address which is different from the
  306. return address of the message, include the address after the <list-name>.
  307. For complete majordomo instructions, send a message with the body "help".
  308.  
  309. The name of the digest form of info-dylan is info-dylan-digest.
  310.  
  311. Please do not send administrative requests to the mailing lists!  If you
  312. have trouble with info-dylan, send mail to sysadmin@cambridge.apple.com.
  313.  
  314. [1-4] Where else can I get information about Dylan?
  315.  
  316. The Gwydion Project at Carnegie Mellon University maintains a World Wide
  317. Web (WWW) page of general information on Dylan.  This is accessible using
  318. Mosaic or other web-browsing software.  This page contains the Interim
  319. Reference Manual as well as the original Dylan book in on-line form,
  320. annotated with links to the design notes and changes that have been
  321. approved. This web page also contains the current FAQ from Apple and other
  322. general information of interest to the Dylan community.
  323.  
  324. The URL is "http://legend.gwydion.cs.cmu.edu:8001/dylan/".
  325.  
  326. The Gwydion Project also intends to maintain an FTP-accessible on-line
  327. repository of Dylan libraries and code that the authors wish to share with
  328. the rest of the community.  When this is in operation, it will be announced
  329. on the Dylan mailing lists and will be pointed to from the Dylan WWW page
  330. mentioned above.
  331.  
  332. [1-5] Where should I send comments on the Dylan language?
  333.  
  334. Most comments can be sent to info-dylan.  If you wish to send a private
  335. letter to the Apple engineers working on Dylan, you can send a message to
  336. dylan-comments
  337. @cambridge.apple.com. (AppleLink users can send mail to DYLAN).
  338.  
  339. [1-6] What should I do if I want to implement Dylan?
  340.  
  341. Send mail to dylan-comments@cambridge.apple.com.  We have put together a
  342. program to support implementors, and we want to hear from you.  (AppleLink
  343. users can send mail to DYLAN).
  344.  
  345. If you've written an implementation of Dylan and want to release it, please
  346. contact us for a trademark license.
  347.  
  348. [1-7] Is there a group which promotes the use of object-oriented dynamic
  349. languages?
  350.  
  351. Yes.  There is an OODL special interest group of the Software Frameworks
  352. Association (formerly called MADA).  SFA is a group which champions
  353. object-oriented programming on the Macintosh as well as other platforms.
  354.  
  355. To subscribe to the OODL sig mailing list from AppleLink send mail to
  356. OODL.SIG. Internet subscriptions should be requested from
  357. oodl-sig-request@cambridge.apple.com.
  358.  
  359.  
  360. [2] General Questions About Dylan and Implementations
  361.  
  362. [2-1] What is Dylan?
  363.  
  364. Dylan is a new Object Oriented Dynamic Language (OODL).  Dylan combines the
  365. features of static and dynamic languages.  The goal of the language is to
  366. support a high level of programmer productivity, while still allowing the
  367. efficient delivery of applications and libraries.
  368.  
  369. Dylan is consistently object-oriented.  It is not based on a particular
  370. previously-existing procedural language with some kind of object-oriented
  371. extension.
  372.  
  373. [2-2] What is the target audience for Dylan?
  374.  
  375. The target audience for Dylan is developers of commercial application
  376. software, most of whom are currently using static languages such as C and
  377. C++.   We expect Dylan will appeal to many other groups of programmers as
  378. well, such as educational users who want a very clean object-oriented
  379. language design, or in-house developers who need a high-level, very
  380. productive language.
  381.  
  382. [2-3] How does Dylan differ from previous OODLs?
  383.  
  384. Dylan is designed to allow the powerful and flexible programming techniques
  385. and development environments associated with OODLs, while also allowing the
  386. small, fast delivered applications currently associated with static
  387. languages.
  388.  
  389. Unlike many dynamic languages, Dylan's design consciously enables the
  390. runtime environment to execute without the development environment present.
  391. In addition, Dylan will let you selectively 'turn-off' dynamic capabilities
  392. when they are no longer needed, allowing more efficient compilation.
  393.  
  394. [2-4] Does Apple have an implementation of Dylan?
  395.  
  396. Apple recently announced plans to release an implementation of Dylan.
  397.  
  398. The following description of Apple's implementation was taken from a data
  399. sheet distributed by Apple.
  400.  
  401. The Apple Dylan development environment is designed to let you create
  402. complex, commercial-quality projects with all the advantages of a
  403. rapid-prototyping environment.
  404.  
  405. Your project is stored in a database, unlike traditional, file-based
  406. systems. Apple Dylan's customizable browsers will give you a powerful new
  407. way to look at and manipulate your application as it executes.  You can
  408. browse class hierarchies graphically, find all references to a given
  409. routine or variable, and inspect objects in your program while it's
  410. running.
  411.  
  412. With Apple Dylan's incremental compiler, you will be able to actually
  413. change code in a running program and see the results right away.  No more
  414. waiting for a long edit, compile, link, execute, debug cycle.  This gives
  415. you freedom as a programmer to explore various options and rapidly improve
  416. your product.
  417.  
  418. Apple Dylan will include:
  419. *       Dylan compiler and runtime
  420. *       Integrated development environment featuring incremental
  421. development and advanced configurable browsing and viewing of code
  422. *       Dylan application framework
  423. *       Dylan user-interface builder
  424. *       Cross-language support allowing seamless access to existing C and
  425. C++ code and APIs
  426.  
  427. The first release of Apple Dylan is scheduled to ship in the first quarter
  428. of 1995.  This release will support native 68K stand alone applications.
  429.  
  430. Six to nine months after the first release, Apple will release a version of
  431. Dylan which supports native PowerPC code and OpenDoc parts (components).
  432.  
  433. [2-5] How can I apply to be an early seed site for Apple's Dylan implementation?
  434.  
  435. Send a message to the AppleLink address DYLAN, or the Internet address
  436. dylan@applelink.apple.com.  The message should include your name, address,
  437. phone number, and a brief description of how you plan on using Apple Dylan.
  438.  
  439. [2-6] What third-party implementations of Dylan are available?
  440.  
  441. Several third-parties have expressed interest in implementing Dylan.
  442.  
  443. [a] Marlais is an experimental interpreter written in C. It was created by
  444. Brent Benson, and is being extended by Joe Wilson, Patrick Beard, and
  445. others. Marlais 0.4 is available in the Dylan ftp directory at
  446. cambridge.apple.com. It supports the older lisp-like syntax, and version
  447. 0.5 (coming soon) is expected to support the official algebraic syntax.
  448.  
  449. Marlais 0.4 runs on a variety of unix platforms. Marlais 0.3 has been
  450. ported to the Macintosh, and is available in the Dylan ftp directory as
  451. MacMarlais 0.31.
  452.  
  453. [b] Harlequin is currently investing in a commercial implementation of
  454. Dylan. They are building a PC based Windows (NT/Chicago) hosted version of
  455. the language. For more information, contact Mike Smith
  456. (mikes@harlequin.com), group manager of Harlequin's Dylan project.
  457.  
  458. [c] The Gwydion Project at Carnegie Mellon University is building an
  459. innovative new software development and maintenance environment around the
  460. Dylan language.  A part of this work will involve the development of a
  461. high-performance Dylan implementation that will produce code for many
  462. platforms.
  463.  
  464. For more information on this project, see the Gwydion project's World Wide
  465. Web page: "http://legend.gwydion.cs.cmu.edu:8001/gwydion/".
  466.  
  467. [d] As a development tool, the Gwydion project has produced a byte-coded
  468. Dylan implementation called "Mindy". Though it is not very fast, does not
  469. have an extensive environment, and time spent on maintaining it will be
  470. limited, Mindy may be of some value to people who want to play with Dylan
  471. code and get a feel for the language. Mindy is documented on the Gwydion
  472. web page (see above), and is available by anonymous ftp from
  473. legend.gwydion.cs.cmu.edu in the file:
  474.         /afs/cs.cmu.edu/project/gwydion/release/mindy.tar.gz
  475. Due to CMU security measures, if you use the ftp 'cd' command, then you
  476. must 'cd' to the release directory in one cd command line; for example, do
  477. not try to 'cd' to "/afs/cs/project/gwydion/".
  478.  
  479. [e] Thomas 1.1 is an experimental interpreter written in Scheme. It was
  480. created by Matt Birkholz, Jim Miller, and Ron Weiss at the DEC Cambridge
  481. Research Lab in 1992. It supports the older lisp-like syntax, and does not
  482. incorporate many of the more recent language changes. Thomas is available
  483. at the Dylan ftp site at cambridge.apple.com.
  484.  
  485. [2-7] Is Dylan related to the Newton PDA?
  486.  
  487. Not at this time. If you are looking for more information on Newton
  488. development, you need to contact the Newton Developer Relations at
  489. NEWTON.DEVS@applelink.apple.com.
  490.  
  491. [2-8] Is Dylan designed to be a replacement for Common Lisp?
  492.  
  493. No.  We see Common Lisp and Dylan filling two distinct needs.
  494.  
  495. [2-9] Is Dylan a proprietary language? Why is the Dylan name trademarked?
  496.  
  497. We want Dylan to be available on as many computers as possible.  To this
  498. end, we are encouraging groups outside Apple to implement Dylan.
  499.  
  500. It is our intention to license the Dylan trademark to any implementation
  501. which passes a standard test suite.  The purpose of the trademark is to
  502. ensure quality and consistency among implementations.
  503.  
  504. [3] Questions About the Dylan Language Design
  505.  
  506. [3-1] Is the Dylan language design frozen?
  507.  
  508. With the exception of the macro system, the current language design is
  509. complete.  At this time, we will only be making small tweaks, or changes
  510. necessary to resolve bugs or inconsistencies in the specification.
  511.  
  512. [3-2] What does the Dylan syntax look like?
  513.  
  514. The first Dylan book published in 1992 used a parenthesized, lisp-like
  515. syntax.  The current language definition uses an algebraic syntax, which
  516. will be very familiar to users of Pascal or C.
  517.  
  518. [3-3] Will Dylan have a standard macro system with the algebraic syntax?
  519.  
  520. Yes.
  521.  
  522. [3-4] Are there plans to specify a standard I/O package for Dylan?  What
  523. about threads?
  524.  
  525. Threads, I/O, and other language features may be provided as optional
  526. libraries in the future.  They are not currently part of the language.
  527. Because of the great variety of computing platforms-from PDA to
  528. mainframe-we do not want to standardize on these features too strictly.
  529.  
  530. [3-5] Why is 'make' allowed to return a previously allocated instance, or
  531. an object which is an indirect instance of the class passed to make?
  532.  
  533. We feel that this is a very important abstraction mechanism.  A class
  534. should have flexibility in how it implements make, as long as the object
  535. returned fulfills the protocol of the class.
  536.  
  537. For example, this allows a library to document a single abstract class
  538. which is supported by several undocumented implementation classes. The
  539. abstract class can choose which implementation class to instantiate based
  540. on the additional arguments to make.  This allows optimizations which are
  541. transparent to the clients of the library.
  542.  
  543. The default method for make of a user-defined class returns a fresh direct
  544. instance of the requested class.
  545.  
  546. [3-6] The Dylan '92 manual doesn't require implementations to optimize
  547. tail-recursion. Was this an intentional omission, or an editorial
  548. oversight?
  549.  
  550. It was an editorial oversight.  Dylan implementations will be required to
  551. be properly tail recursive.
  552.  
  553. [3-7] The Dylan '92 manual doesn't say much about modules.  Will this be
  554. specified in the future?
  555.  
  556. The new language document includes a complete module specification.
  557.  
  558. [3-8] Can the 'method' special form be used to create closures?
  559.  
  560. Yes.
  561.  
  562. [3-9] I don't understand how setter variables work.  Is 'setter' a special form?
  563.  
  564. This has been clarified in the new language design.  The new design is
  565. included in the interim Dylan reference book.
  566.  
  567. [3-10] What kind of object is used to return multiple values?
  568.  
  569. When a function returns multiple values, the return values are not stored
  570. in a wrapper object;  they are returned directly.  For example, if a
  571. function returns "the values 4 and 5", it returns two integers.  It does
  572. not return a data structure which contains two integers.
  573.  
  574. Returning multiple values is similar to calling a function with more than
  575. one argument.  When passing multiple objects as arguments to a function,
  576. the objects do not have to be stored in a single data structure before they
  577. are passed.
  578.  
  579. [3-11] Is the specification of sealing complete?
  580.  
  581. Yes.  The new language design includes a complete specification of sealing.
  582. This design is included in the interim Dylan reference book.
  583.  
  584. [3-12] Will Dylan include 'eval'?
  585.  
  586. Some implementations may choose to support eval, but we do not have plans
  587. to add it to the language standard.  We feel that the delivery of
  588. applications which are space efficient requires the separation of
  589. development time activity from runtime activity.
  590.  
  591. [3-13] Will Dylan include an application framework?
  592.  
  593. We recognize the value of application frameworks, especially cross-platform
  594. application frameworks.  Unfortunately, because of the great variation in
  595. computing platforms, a single application framework will not be part of the
  596. Dylan language.  On each platform, there should either be a Dylan-specific
  597. application framework, or Dylan should be able to use application
  598. frameworks written in other languages.
  599.  
  600. [3-14] Will Dylan interface to other languages?
  601.  
  602. We recognize that seamless integration with other languages, especially C
  603. and C++, is essential.  We are working on addressing this issue.  The
  604. solutions may not be part of the Dylan language proper.
  605.  
  606.  
  607.  
  608.  
  609.